#ifndef NONCOPYABLE_H
#define NONCOPYABLE_H

namespace mufun
{

  // noncopyable utility
  class noncopyable
  {
  public:
    noncopyable(const noncopyable &) = delete;
    void operator=(const noncopyable &) = delete;

  protected:
    noncopyable() = default;
    ~noncopyable() = default;
  };

} // namespace mufun

#endif  // NONCOPYABLE_H
